home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / c / mplus_1.exe / GPLUS.H < prev    next >
C/C++ Source or Header  |  1991-12-01  |  7KB  |  198 lines

  1. /*--------------------------------------------------------------
  2.  *  File:           GPLUS.H
  3.  *  Description:    Function definitions for MPLUS graphics functions.
  4.  *
  5.  *  Developed for the MPLUS Graphic Interface Library
  6.  *  Copyright (c) 1989 by Michael Yam
  7.  *-------------------------------------------------------------*/
  8.  
  9. #if !defined(_MPTYPES)
  10. typedef short word;
  11. #define _MPTYPES                /* include only once */
  12. #endif
  13.  
  14. /*      Window border defines.  MSC already defines
  15.  *      _GBORDER and _GFILLINTERIOR in graph.h.
  16.  *      MPLUS adds two new ones for windows with depth.
  17.  */
  18. #define _GRAISE     0x10
  19. #define _GSINK      0x11
  20.  
  21. /*      Dialog box constants
  22.  */
  23. #define GDINFORM    0
  24. #define GDWARN      1
  25. #define GDERROR     2
  26.  
  27. #define GDOKAY      0
  28. #define GDOKCAN     1
  29. #define GDYESNO     2
  30.  
  31. /*      The graphic window structure
  32.  */
  33. #define GSAVEBUFS   5                   /* max save buffers for GWDW */
  34.  
  35. /*      This structure defines the graphic window type.  Referencing
  36.  *      the structure elements directly is convenient but
  37.  *      there are no guarantees that the structure won't change
  38.  *      in future versions.
  39.  */
  40. typedef struct _gwdw
  41. {
  42.     char *savebuf[GSAVEBUFS];       /* save region may be broken up */
  43.     word x1, y1, x2, y2;            /* gwindow coords */
  44.     char border;                    /* 1 of 4 types of borders */
  45.     word fg;                        /* foreground color & border color */
  46.     word bg;                        /* background color */
  47.     struct xycoord gpos;            /* graphic cursor position */
  48.     struct rccoord tpos;            /* text cursor position */
  49.     struct xycoord origin;          /* graphic origin */
  50. }GWDW;
  51.  
  52. /*      Prefix MPLUS function names which resemble MSC's names with
  53.  *      an "mp".  This change introduced with MPLUS 1.3.
  54.  */
  55. #define outtext(text,fg,bg)             mpouttext(text,fg,bg)
  56. #define setvideomode(mode)              mpsetvideomode(mode)
  57. #define getimage(x1,y1,x2,y2,buffer)    mpgetimage(x1,y1,x2,y2,buffer)
  58. #define putimage(x1,y1,buffer,action)   mpputimage(x1,y1,buffer,action)
  59.  
  60. /*-------------------------------------------------------------*
  61.  *  MPLUS Internals.  Only of interest if you are playing
  62.  *  with the source code.
  63.  *-------------------------------------------------------------*/
  64. #define GDTYPE_MAX  2
  65. #define GDPROMPTS_MAX  4
  66.  
  67. #define BiosScrollUp    6               /* scoll up and down */
  68. #define BiosScrollDn    7
  69.  
  70. struct _vport
  71. {
  72.     word x1, y1;
  73.     word x2, y2;
  74.     char border;
  75.     word fg;
  76.     word bg;
  77. };
  78.  
  79. struct _twdw
  80. {
  81.     word r1, c1;
  82.     word r2, c2;
  83.     char border;
  84.     word fg;
  85.     word bg;
  86. };
  87.  
  88. struct vportdata
  89. {
  90.     word x1, y1, x2, y2, gfg, gbg;
  91.     word r1, c1, r2, c2, tfg, tbg;
  92.     char gborder, tborder;
  93. };
  94.  
  95. struct gdialogue
  96. {
  97.     char count;
  98.     char *prompt[GDPROMPTS_MAX];
  99.     word xo1, yo1, xo2, yo2;
  100.     word fg, bg, hsfg, hsbg, highlite;
  101.     word x1[ GDTYPE_MAX ], y1[ GDTYPE_MAX ], x2[ GDTYPE_MAX ], y2[ GDTYPE_MAX ];
  102.     word c1[ GDTYPE_MAX ], c2[ GDTYPE_MAX ]; 
  103.     word hotrow;
  104. };
  105.  
  106. extern struct _twdw _twdw;
  107. extern struct _vport _vport;
  108. extern struct videoconfig _videoconfig;
  109.  
  110. extern GWDW *_currgwdw;
  111.  
  112. /*-------------------------------------------------------------*
  113.  *  Function Prototypes arranged by source module.
  114.  *  See also MPMENU.H and MOUSER.H.
  115.  *
  116.  *  Note: some functions are for MPLUS' internal use.
  117.  *-------------------------------------------------------------*/
  118.  
  119. /* MPLUS0.C */
  120. extern  int mpsetvideomode(word mode);
  121. extern  void resetviewport(void);
  122. extern  void resettextwindow(void);
  123. extern  int ginrectangle(int x0,int y0,int x1,int y1,int x2,int y2);
  124.  
  125. /* MPLUS1.C */
  126. extern  int mpwordwrap(char flag);
  127. extern  void inc_tcursor(struct rccoord *tcursor);
  128. extern  void mpoutchar (int ch, word fg, word bg);
  129. extern  void mpouttext(char *msg,word fg,word bg);
  130. extern  void _mpoutword(char *msgword,int wordlen,word fg,word bg);
  131. extern  void _xorchar(char ch,word fg,word bg);
  132. extern  int getvisualpage(void);
  133. extern  word charwidth(void);
  134. extern  word charheight(void);
  135. extern  void tscroll(word r1,word c1,word r2,word c2,int lines,int direction,word bg);
  136.  
  137. /* MPLUS2.C */
  138. extern  void mpsetviewport(word x1,word y1,word x2,word y2,char border,word fg,word bg);
  139. extern  void mpsettextwindow(word r1,word c1,word r2,word c2,char border,word fg,word bg);
  140. extern  void getgrafcoord(word row,word col,word *y,word *x);
  141. extern  void gettextcoord(word x,word y,word *col,word *row);
  142. extern  void vport_to_wdw(word x1,word y1,word x2,word y2,word *r1,word *c1,word *r2,word *c2);
  143. extern  void wdw_to_vport(word r1,word c1,word r2,word c2,word *x1,word *y1,word *x2,word *y2);
  144. extern  struct vportdata *vportsave(void);
  145. extern  int vportrestore(struct vportdata *vport);
  146.  
  147. /* MPLUS3.C */
  148. extern void mpoutgtext (char *text, word fg, word bg);
  149.  
  150. /* MPGWDW0.C */
  151. extern  void gwdwclr(struct _gwdw *gwptr);
  152. extern  int gwdwsetactv(struct _gwdw *gwptr);
  153. extern  struct _gwdw *gwdwgetactv(void);
  154. extern  void gwdwnoactv(void);
  155. extern  int ginwindow(struct _gwdw *gwptr,word x,word y);
  156. extern  struct _gwdw *gwdwtopen(word r1,word c1,word r2,word c2,char border,word fg,word bg);
  157. extern  int gwdwclose(struct _gwdw *gwptr);
  158. extern  struct _gwdw *gwdwopen(word x1,word y1,word x2,word y2,char border,word fg,word bg);
  159. extern  void gwdwgetorg(struct _gwdw *gwptr,word *x,word *y);
  160. extern  void gwdwsetorg(struct _gwdw *gwptr,word x,word y);
  161. extern  int gwdwbreak(struct _gwdw *gwptr);
  162.  
  163. /* MPGWDW1.C */
  164. extern  int grootclose(struct _gwdw *gwptr);
  165. extern  struct _gwdw *grootopen(word x1,word y1,word x2,word y2,char border,word fg,word bg);
  166. extern  struct _gwdw *groottopen(word r1,word c1,word r2,word c2,char border,word fg,word bg);
  167.  
  168. /* MPIMAGE.C */
  169. extern  char *gpickup(int x1,int y1,int x2,int y2);
  170. extern  int  gputdown(int x1,int y1,char *object,int action);
  171. extern  void mpgetimage(word x1,word y1,word x2,word y2,char *buffer);
  172. extern  void mpputimage(word x1,word y1,char *buffer,word action);
  173. extern  int  physhighlite(word x1,word y1,word x2,word y2);
  174. extern  int  loghighlite(word x1,word y1,word x2,word y2);
  175.  
  176. /*  MPINPUT.C */
  177. int mpinput (char *buffer, int maxlen, unsigned char ctype, word fg, word bg);
  178.  
  179. /* MPDIAL.C */
  180. extern  int gdinit(char * *gd_prompt,int count,word fg,word bg,word hsfg,word hsbg,word highlite);
  181. extern  struct _gwdw *gdopen(void);
  182. extern  void gdclose(void);
  183. extern  int gdwrite(char *text);
  184. extern  int gdprompt(void);
  185. extern  int gdboxprompt(word r1,word c1,int index);
  186. extern  int gdhighlite(word x1,word y1,word x2,word y2);
  187. extern  int gdialog(char dialtype,char prompt);
  188. extern  void gdesckey(unsigned char ch);
  189. extern  void gdenterkey(unsigned char ch);
  190.  
  191. /* MPXORL.C */
  192. extern  void xorline(word x1,word y1,word x2,word y2,word fg,word bg);
  193. extern  void xorpt(word x,word y,word fg,word bg);
  194. /*-------------------------------------------------------------*
  195.  *                  End of GPLUS.H                             *
  196.  *-------------------------------------------------------------*/
  197.  
  198.